In the Session Initiation Protocol (SIP), a dialog for a communication is setup for different kinds of communications sessions, such as voice, video, text, and the like. The initial signaling to establish the dialog for the communication session is typically setup using a SIP proxy server and/or a Back-to-Back User Agent (B2BUA). Once the communication session is setup using the SIP Proxy server and/or the B2BUA, a media session may be created directly between user agents in SIP endpoint devices. For example, a SIP proxy server can setup an initial voice call between two SIP endpoint devices. Once the initial voice call is established by the proxy server, the communication session voice call can be setup (e.g., using Real-Time Protocol (RTP)) directly between the two communication devices.
This call setup model creates some problems if the SIP Proxy server in the above example or another server such as an application server providing features to the session fails during the communication session. For example, if a user of a SIP device involved in the communication session wants to transfer a voice call, the user of the SIP device will be unable to transfer the voice call even if the server has been reinitialized or failed over to a new server. This is because the reinitialized/new server is unaware of the previous session. Previous solutions to this problem have included reconstructing a session between the UAs. However, these solutions rely on support from the individual SIP UAs involved and only work in sessions between UAs specifically coded to perform the reconstruction. This limits the applicability of these approaches since sessions involving incoming SIP Trunks, third-party UAs, mobile networks, etc. cannot be reconstructed. Hence, there is a need for improved methods and systems for reconstructing a communication session such as a SIP call or conference.